import { urlLocaleMatcherRegex } from '@akinon/next/utils';
export const dynamic = 'force-dynamic';
export async function GET(request: Request) {
const url = new URL(request.url);
const matchedLocale = url.pathname.match(urlLocaleMatcherRegex);
const sitemap = await fetch(`${process.env.SERVICE_BACKEND_URL}/sitemap.xml`);
const sitemapNodes = [
'specialpages',
'products',
'categories',
'flatpages',
'landingpages'
];
let sitemapContent = await sitemap.text();
sitemapNodes.forEach((sitemapNode) => {
sitemapContent = sitemapContent.replace(
new RegExp(
`[\\.\\w:\\/-]+(${sitemapNode}-\\d+)[\\.\\w\\/-]+`,
'g'
),
`${process.env.NEXT_PUBLIC_URL}${
matchedLocale?.[0] ?? ''
}/sitemap/$1`
);
});
return new Response(sitemapContent, {
headers: {
'Content-Type': 'application/xml'
}
});
}